home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / language / pcl_src.zoo / 5-22-87-notes.txt < prev    next >
Lisp/Scheme  |  1987-08-03  |  4KB  |  127 lines

  1.  
  2.  
  3. These notes correspond to *pcl-system-date* "5/22/87   May 22nd, 1987".
  4.  
  5. The notes from the last release are stored as 4-29-notes.text
  6.  
  7. This release runs in:
  8.   CMU Lisp
  9.   ExCL
  10.   Lucid
  11.   Symbolics Common Lisp (Genera)
  12.   Vaxlisp (2.0)
  13.   Xerox Common Lisp (Lyric Release)
  14.   Kyoto Common Lisp (5.2)
  15.   TI Common Lisp (Release 3)
  16.  
  17. TI release 2 should also be working soon, I will announce that when it
  18. happens.
  19.  
  20.  
  21. Note once again, that Xerox Lisp users should FTP all the source files
  22. from /pub/pcl/ as well as all the dfasl files from /pub/pcl/xerox/.
  23. Included in the xerox specific directory is a file called PCL-ENV, which
  24. provides some simple environment support for using PCL in Xerox Lisp.
  25. You must load PCL BEFORE loading pcl-env.
  26.  
  27.  
  28. MAJOR CHANGES IN THIS RELEASE:  
  29.  
  30. ---
  31.   it is possible to forward reference classes in a defclass (or
  32.   add-named-class) form.  This means it is possible to say:
  33.  
  34.   (defclass foo (bar) (i j k))
  35.  
  36.   (defclass bar () (x y z))
  37.  
  38.   Rather than having to put the in the "right" order.
  39.  
  40.   NOTE: the full-on error checking for this is not finished yet.
  41.         don't try to break it by doing things like:
  42.  
  43.   (defclass foo (bar) (i j k))
  44.   (make-instance 'foo)
  45.   (defclass bar () (x y z))
  46.  
  47. ---
  48.   print-instance has been renamed to print-object
  49.  
  50. ---
  51.   the defclass and class-definition protocol has changed.  some of the
  52. effects of this change are:
  53.  
  54. * ADD-NAMED-CLASS is a true functional interface for defclass, so for
  55.   example,
  56.  
  57.   (defclass foo () (x y z) (:accessor-prefix foo-))
  58.  
  59.   is equivalent to:
  60.  
  61.   (add-named-class (class-prototype (class-named 'class))
  62.                    'foo
  63.                    ()
  64.                    '(x y z)
  65.                    '((:accessor-prefix foo-)))
  66.  
  67. * defclass (and add-named-class) now undefined accessor methods, reader
  68.   methods and constructors which 'went away'.  For example:
  69.  
  70.   (defclass foo () (x y z) (:reader-prefix foo-))
  71.  
  72.   defines methods on the generic functions foo-x foo-y and foo-z.
  73.  
  74.   but if you then evaluated the defclass form:
  75.  
  76.   (defclass foo () (x y z))
  77.  
  78.   those reader methods will be removed from the generic functions
  79.   foo-x foo-y and foo-z.
  80.  
  81.   Similarly constructors which 'went away' will be undefined.
  82.  
  83. ---
  84.   writer methods generated by the :accessor and :accessor-prefix options
  85.   now pay attention to the :type slot-option.  So,
  86.  
  87.   (defclass foo () ((x :accessor foo-x :type symbol)))
  88.  
  89.   (defvar *foo-1* (make-instance 'foo))
  90.  
  91.   (setf (foo-x *foo-1*) 'bar)  ; is OK
  92.  
  93.   (setf (foo-x *foo-1*) 10)    ; signals an error
  94.  
  95. ---
  96.   There are fewer built-in classes.  Specifically, only the following
  97.   Common Lisp types have classes:
  98.  
  99.   ARRAY BIT-VECTOR CHARACTER COMPLEX CONS FLOAT INTEGER LIST
  100.   NULL NUMBER RATIO RATIONAL SEQUENCE STRING SYMBOL T VECTOR
  101.  
  102. * In a future release the subtypes of FLOAT may have classes, that issue
  103.   is still under discussion.
  104.  
  105. * Some ports of PCL also define classes for:
  106.  
  107.   HASH-TABLE PACKAGE PATHNAME RANDOM-STATE READTABLE STREAM
  108.  
  109.   it depends on how the type is represented in that Lisp's type system.
  110.  
  111.  
  112. ---
  113.   The with-slots option :use-slot-value is now obsolete.  You should use
  114.   the :use-accessors option as specified in the CLOS spec instead.
  115.  
  116.   with-slot forms which did not use the :use-slot-value option are OK,
  117.   you don't have to touch them.
  118.  
  119.   with-slot forms which used :USE-SLOT-VALUE T should be changed to say
  120.   :USE-ACCESSORS NIL.
  121.  
  122.   with-slot forms which used :USE-SLOT-VALUE NIL should be changed to
  123.   use neither option, or if you insist :USE-ACCESSORS T
  124.  
  125.  
  126.  
  127.